package business;

import java.util.Set;

public interface DisciplinaInterface {

	/***********************************************************
	 * @return
	 ***********************************************************/
	public abstract Set<Inscricao> inscricoes();

	/***********************************************************
	 * @return
	 ***********************************************************/
	public abstract Set<Aluno> alunos();

	/***********************************************************
	 * @return
	 ***********************************************************/
	public abstract Set<Oferta> ofertas();

	/***********************************************************
	 * @return
	 ***********************************************************/
	public abstract Set<Perfil> perfis();

	/***********************************************************
	 * @return
	 ***********************************************************/
	public abstract Set<Disciplina> seguintes();

	/***********************************************************
	 * @return the nome
	 ***********************************************************/
	public abstract String getNome();

	/***********************************************************
	 * @param nome
	 *            the nome to set
	 ***********************************************************/
	public abstract void setNome(String nome);

	/***********************************************************
	 * @param a
	 ***********************************************************/
	public abstract void efectuaInscricao(Aluno a);

	/***********************************************************
	 * @return the precedentes
	 ***********************************************************/
	public abstract Set<Disciplina> getPrecedentes();

	public abstract void addPrecedentes(Disciplina d);

	/***********************************************************
	 * @return the areaCientifica
	 ***********************************************************/
	public abstract AreaCientifica getAreaCientifica();

	/***********************************************************
	 * @return the regente
	 ***********************************************************/
	public abstract Professor getRegente();

	/***********************************************************
	 * @return the equipaDocente
	 ***********************************************************/
	public abstract Set<Professor> getEquipaDocente();

	/***********************************************************
	 * @param areaCientifica
	 *            the areaCientifica to set
	 ***********************************************************/
	public abstract void setAreaCientifica(AreaCientifica areaCientifica);

	/***********************************************************
	 * @param regente
	 *            the regente to set
	 ***********************************************************/
	public abstract void setRegente(Professor regente);

	public abstract void addEquipaDocente(Professor p);

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	public abstract String toString();

	public abstract int creditosDaCadeira(Perfil perfilActual);

}